home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 23 / AACD 23.iso / AACD / Programming / tek / array / createarray.c < prev    next >
C/C++ Source or Header  |  2001-05-12  |  708b  |  34 lines

  1.  
  2. #include "tek/mem.h"
  3. #include "tek/array.h"
  4.  
  5. /* 
  6. **    TEKlib
  7. **    (C) 2001 TEK neoscientists
  8. **    all rights reserved.
  9. **
  10. **    TAPTR TCreateArray(TAPTR mmu, TUINT size, TUINT len, TTAGITEM *tags)
  11. **
  12. **    create array header.
  13. **
  14. */
  15.  
  16. TAPTR TCreateArray(TAPTR mmu, TUINT size, TUINT len, TTAGITEM *tags)
  17. {
  18.     if (size >= 1 && size <= 0xffff)        /* current element size limit is 2^16-1 bytes */
  19.     {
  20.         TUINT alloclen = (len + ARRAY_ALIGNMENT) & ~ARRAY_ALIGNMENT;
  21.         TARRAY *arr = TMMUAlloc(mmu, sizeof(TARRAY) + alloclen * size);
  22.         if (arr)
  23.         {
  24.             arr->mmu = mmu;
  25.             arr->len = len;
  26.             arr->alloclen = alloclen;
  27.             arr->size = (TUINT16) size;
  28.             arr->valid = 1;
  29.             return (TAPTR) (((TARRAY *) arr) + 1);
  30.         }
  31.     }
  32.     return TNULL;
  33. }
  34.